package ovm.gui.views.news;

import com.vaadin.ui.Button;
import com.vaadin.ui.TextArea;
import com.vaadin.ui.TextField;
import com.vaadin.ui.VerticalLayout;
import ovm.entity.NewsEntity;
import ovm.gui.views.AbstractView;
import ovm.management.AbstractManager;

import java.util.Date;

import static ovm.application.MainApplication.*;

/**
 * Created by IntelliJ IDEA.
 * User: Jokser
 * Date: 07.06.12
 * Time: 19:00
 * To change this template use File | Settings | File Templates.
 */

public class NewsEditorView extends AbstractView {

    protected NewsEntity entity;

    public NewsEditorView(final NewsEntity entity1) {

        this.entity = entity1;

        VerticalLayout layout = new VerticalLayout();

        final TextField headerField = new TextField("Заголовок");
        final TextField usernameField = new TextField("Пользователь");
        final TextArea messageArea = new TextArea("Содержание");

        headerField.setWidth(150);
        usernameField.setWidth(150);
        messageArea.setWidth(300);

        messageArea.setWordwrap(true);

        Button addOrEditButton = null;

        addOrEditButton = new Button("Добавить или изменить", new Button.ClickListener() {
            @Override
            public void buttonClick(Button.ClickEvent event) {
                entity.setnDate(new Date());
                entity.setHeader((String) headerField.getValue());
                entity.setnUsername((String) usernameField.getValue());
                entity.setMessage((String) messageArea.getValue());
                if (AbstractManager.persistAbstractEntity(entity) == 0) {
                    navigator.showNotification("Новость успешно изменена или добавлена");
                    navigator.setMainView(new NewsView());
                } else {
                    navigator.showNotification("Не удалось добавить или изменить новость");
                }
            }
        });

        if (entity == null) {
            entity = new NewsEntity();
            addOrEditButton.setCaption("Добавить новость");
            setCaption("Добавление новой новости");
        } else {
            headerField.setValue(entity.getHeader());
            usernameField.setValue(entity.getnUsername());
            messageArea.setValue(entity.getMessage());
            addOrEditButton.setCaption("Изменить новось");
            setCaption("Редактирование новости");
        }

        layout.addComponent(headerField);
        layout.addComponent(usernameField);
        layout.addComponent(messageArea);
        layout.addComponent(addOrEditButton);

        addComponent(layout);
    }


}
